#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=2e5+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int a[20];
void solve()
{
	int n;
	cin>>n;

	int pos=1;
	while(n)
	{
		a[pos++]=n%10;
		n/=10;
	}
	pos--;//最后多加了一次,下次可以从0开始用前置++

	reverse(a+1,a+1+pos);//应为要*10算高位,所以要反着算
	ll even_sum=0,odd_sum=0;
	for(int i=1;i<=pos;i++)
	{
		if(i&1) odd_sum=odd_sum*10+a[i];
		else even_sum=even_sum*10+a[i];
	}

	cout<<(even_sum+1)*(odd_sum+1)-2<<'\n';
	
}

int main()
{
	close();
	int T; cin>>T;
	while (T--) solve();
	return 0;
}
//个位进位加到百位,百位进位加到千位
//j奇数位相互进,偶数位相互进
//n组合出来的方案

//4  (0,4) (4,0) (1,3) (3,1) (2,2)
//5  (0,5) (5,0) (1,4) (4,1) (2,3) (3,2) 
//25 有26种构成
//但题目说明两个构成的数都是正整数因此不允许0 xx 和xx 0这种情况,这是总的情况
//但是题目允许 奇数位(4,0) 和偶数位(1,3)这么配置  相当于400+1030  但是不允许1430 +0这种情况
